package com.tuantuan.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;
import com.tuantuan.dao.NoticeDao;
import com.tuantuan.model.Notice;
import com.tuantuan.model.Users;
import com.tuantuan.service.NoticeService;
/**
 * 
 * 校园公告的控制层
 * NoticeController<BR>
 * 创建人:xyd <BR>
 * 时间：2015年10月27日-下午11:07:49 <BR>
 * @version 1.0.0
 *
 */
@Controller
public class NoticeController {

	@Autowired
	private NoticeDao noticeDao;
	@Autowired
	private NoticeService noticeService;
	
	/**
	 * 
	 * 添加<BR>
	 * 方法名：addNotice<BR>
	 * 创建人：许耀东 <BR>
	 * 时间：2015年10月27日-下午11:10:08 <BR>
	 * @return String<BR>
	 */
	@RequestMapping("/notice/addNotice.do")
	@ResponseBody
	public String addNotice(HttpServletRequest request,HttpServletResponse response,Notice notice){
		//1.取得登陆用户信息
		Users u=(Users) request.getSession().getAttribute("userEntity");
		u.setUserAccount("admin");
		//2.保存用户信息
		if(null==notice.getNo_id()||"".equals(notice.getNo_id())){
			notice.setCreateBy(u.getUserAccount());
			noticeDao.addNotice(notice);
		}else{
			//更新信息
			notice.setUpdateBy(u.getUserAccount());
			noticeDao.updateNotice(notice);
		}
		return "succ";
	}
	
	/**
	 * 
	 * 详细信息
	 * 方法名：noticeDetails<BR>
	 * 创建人：xyd <BR>
	 * 时间：2015年11月15日-上午10:53:17 <BR>
	 * @param notice
	 * @return String<BR>
	 */
	@RequestMapping("/notice/noticeDetails")
	public String  noticeDetails(HttpServletRequest request,HttpServletResponse response,int no_id){
		Notice notice=new Notice();
		notice.setNo_id(no_id);
		request.setAttribute("notice", noticeDao.queryNotices(notice)); 
		return "notice/noticedetails";
	}
	

	
	/**
	 * 
	 * 修改数据<BR>
	 * 方法名：updateNotice<BR>
	 * 创建人：许耀东 <BR>
	 * 时间：2015年10月27日-下午11:11:38 <BR>
	 * @return String<BR>
	 */
	@RequestMapping("/notice/toUpdateNotice")
	public String updateNotice(HttpServletRequest request,HttpServletResponse response, int no_id){
		Notice notice=new Notice();
		notice.setNo_id(no_id);
		request.setAttribute("notice",noticeDao.queryNotices(notice)); 
		return "notice/addnotice";
	}
	
	/**
	 * 
	 * 删除<BR>
	 * 方法名：deleteNotice<BR>
	 * 创建人：许耀东 <BR>
	 * 时间：2015年10月27日-下午11:10:28 <BR>
	 * @return String<BR>
	 */
	public String deleteNotice(){
		
		return null;
	}
	
	
	/**
	 * 
	 * 查询所有的<BR>
	 * 方法名：queryNotices<BR>
	 * 创建人：许耀东 <BR>
	 * 时间：2015年10月27日-下午11:10:32 <BR>
	 * @return String<BR>
	 */
	@RequestMapping("/notice/queryNotices.do")
	@ResponseBody
	public Map<String,Object> queryNotices(HttpServletRequest request,HttpServletResponse response,Notice notice){
		
		Map<String,Object> map=new HashMap<String, Object>();
		Notice page=noticeDao.queryNoticeMap(notice);
		map.put("page", page);
		return map;
		
	}
	
	
	
	//接口信息
	/**
	 * 
	 * 
	 * 方法名：queryAllNotice<BR>
	 * 创建人：xyd <BR>
	 * 时间：2015年12月20日-下午8:17:00 <BR>
	 * @return String<BR>
	 * 分页显示全部列表
	 */
	@RequestMapping("/notice/queryAllNotice")
	@ResponseBody
	public String queryAllNotice(HttpServletRequest request,Notice notice){
		Gson gson=new Gson();
		List<Notice> list=noticeDao.queryAll(notice);
		String json=gson.toJson(list);
		return json;
	}
	
	@RequestMapping("/notice/queryAllNoticeById")
	@ResponseBody
	public String queryAllNoticeById(HttpServletRequest request,int no_id){
		Notice notice=new Notice();
		notice.setNo_id(no_id);
		Gson gson=new Gson();
		return gson.toJson(noticeDao.queryNotices(notice));
	}
}
